Fast modified discrete cosine transform method

ABSTRACT

A technique for computationally efficient evaluation of the Modified Discrete Cosine Transform (MDCT) using the Fast Fourier Transform (FFT) method is presented in which the input of the FFT block consists of a sequence of N complex numbers, and this complex data is evaluated using an N/2-Point FFT only, thereby descreasing computation burden almost by two.

FIELD OF THE INVENTION

This invention is applicable in the field of multi-channel audio coders which use a modified discrete cosine transform as a step in the compression of audio signals.

BACKGROUND OF THE INVENTION

Recent years witnessed an unprecedented advancement in audio coding technology. This has led to high compression ratios while keeping audible degradation in the compressed signal to a minimum. These coders are intended for a variety of applications, including 5.1 channel film soundtracks, HDTV, laser discs and multimedia. Description of a compression method used in such coders can be found in the ATSC Standard, “Digital Audio Compression (AC-3) Standard”, Document A/52, 20 Dec. 1995.

In the basic approach, at the encoder the time domain signal is sectioned into frames, each frame comprising of a number of blocks. The time domain signal in each block is first converted to the frequency domain using a bank of filters. The frequency domain coefficients, thus generated, are next converted to floating point representation. In floating point syntax, each coefficient is represented as a mantissa and an exponent. The bulk of the compressed bitstream transmitted to the decoder comprises these exponents and mantissas.

The coders are expected to operated in real time. Therefore it is important that the processing at both the encoders and decoders be highly optimised. The ATSC standard outlines a method for conversion of the inverse cosine transform to Fast Fourier Transform to obtain remarkable speed gain.

Frequency transformation presents one of the greatest computation requirements in any transform coder. Therefore, an efficient implementation of this phase can decrease the computation requirement of the system significantly and make real time operation of encoder an easily attainable possibility.

In some encoders such as the AC-3, the frequency domain transformation of signals is performed by the modified discrete cosine transform (MDCT). If directly implemented, the MDCT requires O(N²) additions and multiplications.

However it is possible to reduce the number of required operations significantly if one is able to express the MDCT equation into a form that is amenable to the use of the well known Fast Fourier Transform (FFT) method of J. W. Cooley and J. W. Tukey (1960).

To compute the MDCT of a sequence of N real data, conventional methods use a system comprising of a pre-processing block, an N-point FFT block and finally a post-processing block.

SUMMARY OF THE INVENTION

In accordance with the disclosed embodiments of the invention, there is provided a method of evaluating a modified discrete cosine transform (MDCT) of an input sequence of complex data using a Fast Fourier Transform (FFT), wherein the FFT is a N/2-Point FFT.

Preferably, the MDCT is of the form:

$X_{k} = {\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*{\cos\left( {{2\pi*\left( {{2n} + 1} \right)*\left( {{2k} + 1} \right)\text{/}4N} + {\pi*\left( {{2k} + 1} \right)\text{/}4}} \right)}}}$ k = 0…(N/2 − 1) where x[n] represents the input sequence and N is the number of data samples in the sequence.

Preferably, a transform coefficient sequence of the MDCT is derived using the N/2-Point FFT of a complex function (z[n], where

$G_{k} = {{\frac{1}{2}\left\lbrack {Z_{k} + Z_{\frac{N}{2} - k - 1}^{n}} \right\rbrack} + {\frac{{\mathbb{e}}^{j\frac{n{({{2k} + 1})}}{N}}}{2j}\left\lbrack {Z_{k} - Z_{\frac{N}{1} - k - 1}^{n}} \right\rbrack}}$

Preferably, a transform Zk and the complex conjugate of the transform Z_(N/2-k-1) are derived from z[n] for the expression

${{z\lbrack n\rbrack} = {\left( {{x\left\lbrack {2n} \right\rbrack} + {{jx}\left\lbrack {{2n} + 1} \right\rbrack}} \right){\mathbb{e}}^{j\frac{2\pi\; n}{N}}}},{0 \leq n \leq \left( {{N\text{/}2} - 1} \right)}$

where Gk is a transform coefficient sequence which allows the MDCT to be evaluated, in that

$G_{k} = {{g_{k,r} + {jg}_{k,j}} = {\sum\limits_{n = 0}^{n = {N - 1}}\;{\left( {{x\lbrack n\rbrack}{\mathbb{e}}^{{j\pi}\; n\text{/}N}} \right)*{\mathbb{e}}^{{j2\pi}\;{nk}\text{/}N}}}}$

which can be used to solve the MDCT when rewritten as

$X_{k} = {{{\cos\;{\gamma(k)}\underset{\underset{T_{1}}{︸}}{1\text{/}2\left( {{{\mathbb{e}}^{{{j\pi}{({k + {1\text{/}2}})}}\text{/}N}G_{k}} + {{\mathbb{e}}^{{- {{j\pi}{({k + {1\text{/}2}})}}}\text{/}N}G_{k}^{*}}} \right)}} - {\sin\;{\gamma(k)}\underset{︸}{1\text{/}2{j\left( {{{\mathbb{e}}^{{{j\pi}{({k + {1/2}})}}\text{/}N}G_{k}} - {{\mathbb{e}}^{{- {{j\pi}{({k + {1\text{/}2}})}}}\text{/}N}G_{k}^{*}}} \right)}}}} = {{\cos\;\gamma*\underset{\underset{T_{1}}{︸}}{\left( {{g_{k,r}{\cos\left( {{\pi\left( {k + {1\text{/}2}} \right)}\text{/}N} \right)}} - {g_{k,i}{\sin\left( {{\pi\left( {k + {1\text{/}2}} \right)}\text{/}N} \right)}}} \right)}} - {\sin\;\gamma*\underset{\underset{T_{\;^{11}}}{︸}}{\left( {{g_{k,r}{\sin\left( {{\pi\left( {k + {1\text{/}2}} \right)}\text{/}N} \right)}} + {g_{k,i}{\cos\left( {{\pi\left( {k + {1\text{/}2}} \right)}\text{/}N} \right)}}} \right)}}}}$

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is more fully described, by way of non-limiting example only, with reference to the drawings, in which:

FIG. 1 is a representation of an audio input sequence;

FIG. 2 is a diagrammatic representation of an encoder; and

FIG. 3 illustrates evaluation of the input sequence into a coefficient set.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

The input to an audio coder comprises a stream of digitized samples of a time domain analog signal. For a multi-channel encoder the stream consists of interleaved samples for each channel, the input stream is sectioned into blocks, each block containing N consecutive samples of each channel (see FIG. 1). Thus within a block the N samples of a channel form a sequence {x[0],x[1],x[2], . . . , x[N-1]}. The time domain samples are next converted to the frequency domain using an analysis filter bank (see FIG. 2).

The frequency domain coefficients, thus generated, form a coefficient set which can be identified as (X₀,X₁,X₂, . . . , X_(N/2-1)). Since the signal is real only the first N/2 frequency components are considered. Here X₀ is the lowest frequency (DC) component while X_(N/2-1) is the highest frequency component of the signal.

Audio compression essentially entails finding how much of the information in the set (X₀,X₁,X₂, . . . , X_(N/2-1)) is necessary to reproduce the original analog signal at the decoder with minimal audible distortion.

The coefficient set is normally converted into floating point format, where each coefficient is represented by an exponent and mantissa.

The exponent set is usually transmitted in its original form. However, the mantissa is truncated to a fixed or variable number of decimal places. The value of the number of bits fro coding a mantissa is usually obtained from a bit allocation algorithm, which for advanced psychoacoustic coders may be based on the making property of the human auditory system. A low number of bits results in higher compression ratio because less space is required to transmit the coefficients. However this causes a very high quantization error leading to audible distortion. A good distribution of available bits to each mantissa forms the core of the most advanced encoders.

In some encoders such as the AC-3, the frequency domain transformation of signals is performed by the (MDCT) modified discrete cosine transform (Eq. 1).

$\begin{matrix} {{X_{k} = {\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*{\cos\left( {{2\pi*\left( {{2n} - 1} \right)*\left( {{2k} - 1} \right)\text{/}4N} - {\pi*\left( {{2k} + 1} \right)\text{/}4}} \right)}}}}{k = {0{\ldots\left( {{N\text{/}2} - 1} \right)}}}} & {{Eq}.\mspace{14mu} 1} \end{matrix}$

If directly implemented in the form given above, the MDCT requires O(N²) additions and multiplications.

However it is possible to reduce the number of required operations significantly if one is able to evaluate Eq. 1 using the well known Fast Fourier Transform method of J. W. Cooley and J. W. Tukey (1960). The general Discrete Fourier Transform (DFT) is given below (Eq. 2). It requires O(N²) complex additions and multiplications. But by using the Fast Fourier Transform method the DFT in Eq. 2 can be computed with O(Nlog₂N) operations only. Eq. 2.

$F_{k} = {\sum\limits_{n = 0}^{n = {N - 1}}\;\left( {{x\lbrack n\rbrack}*e^{2\pi\; j\;{nk}\text{/}N}} \right)}$ k = 0… N − 1

Here j is the symbol for imaginary number, i.e. J−√{square root over (−)}1.

Although it may not be immediately apparent how Eq. 1 can be transformed to Eq. 2, a careful analysis shows that this is indeed possible. To simplify Eq. 1, let us define two functions α(n,κ)=2π(2n+1)(2κ+1)/4N  Eq.3 and γ(κ)=π(2κ+1)/4  Eq. 4

Then, using functions, Eq. 1 can be rewritten as

bbb

In Eq. 6 the trigonometric equality, cos(a+b)=cos a cos b-sinasinb is used for simplification. Furthermore, since the function γ(κ) is only dependent on variable n, it can be brought outside the summation expression to give

$\begin{matrix} {X_{k} = {{\cos\;{\gamma(k)}\underset{\underset{T_{1}}{︸}}{\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*\cos\;{\alpha\left( {n,k} \right)}}}} - {\sin\;{\gamma(k)}\underset{\underset{T_{2}}{︸}}{\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*\sin\;{\alpha\left( {n,k} \right)}}}}}} & {{Eq}.\mspace{14mu} 7} \end{matrix}$

The two terms, T₁ and T₂, in Eq.7 can now be evaluated separately. From Euler's identity e^(iθ)=cos θ+j sin θ, we know that cos α(n,κ)=(e^(ja(n,κ))+e^(−ja(n,κ)))/2 and sin α(n,κ)=(e^(ja(n,κ))−e^(−ja(n,κ))2j. Therefore we can rewrite the terms T₁ and T₂ as

$\begin{matrix} {T_{1} = {{\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*\left( {{\mathbb{e}}^{j\alpha} - {\mathbb{e}}^{- {j\alpha}}} \right)\text{/}2}} = {1\text{/}2\left\{ {\underset{\underset{A_{1}}{︸}}{\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*{\mathbb{e}}^{j\alpha}}} + \underset{\underset{A_{2}}{︸}}{\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*{\mathbb{e}}^{- {j\alpha}}}}} \right\}}}} & {{Eq}.\mspace{14mu} 8} \\ {T_{2} = {{\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*\left( {{\mathbb{e}}^{j\alpha} - {\mathbb{e}}^{- {j\alpha}}} \right)\text{/}2j}} = {1\text{/}2j\left\{ {\underset{\underset{A_{1}}{︸}}{\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*{\mathbb{e}}^{j\alpha}}} + \underset{\underset{A_{2}}{︸}}{\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*{\mathbb{e}}^{- {j\alpha}}}}} \right\}}}} & {{Eq}.\mspace{14mu} 9} \end{matrix}$

We evaluate the term A₁. From Eq. 8 and Eq. 9 note that

$\begin{matrix} {A_{1} = {\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*{\mathbb{e}}^{j\alpha}}}} & \; \\ {= {\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*{\mathbb{e}}^{j({2{\pi{({{2n} + 1})}}{({{2k} + 1})}\text{/}4N}}}}} & \; \\ {= {{\mathbb{e}}^{{{j\pi}{({k + {1\text{/}2}})}}\text{/}N}*{\sum\limits_{n = 0}^{n = {N - 1}}\;{\left( {{x\lbrack n\rbrack}*{\mathbb{e}}^{{j\pi}\; n\text{/}N}} \right)*{\mathbb{e}}^{{j2\pi}\;{nk}\text{/}N}}}}} & {{Eq}.\mspace{14mu} 10} \end{matrix}$

If we define a complex variable χ¹[n]=χ[n]*e^(JκnlN)  Eq. 11

then the Eq. 10 is simply

$\begin{matrix} {A_{1} = {{\mathbb{e}}^{{{j\pi}{({k + {1\text{/}2}})}}\text{/}N}*\underset{\underset{G_{k}}{︸}}{\sum\limits_{n = 0}^{n = {N - 1}}\;{{x^{\prime}\lbrack n\rbrack}*{\mathbb{e}}^{{j2\pi}\;{nk}\text{/}N}}}}} & {{Eq}.\mspace{14mu} 12} \end{matrix}$

The complex term G_(κ)=g_(κr)+jg_(κ,l), where g_(κ,l) and g_(k,i) ε

(set of real numbers) in Eq. 12 is essentially the same as F₇₈ in Eq. 2. Therefore the FFT approach can be used to evaluate G₇₈. This brings down the computation from O/N² to O(Nlog₂N). We can now, similarly, evaluate the second term A₂ in Eq. 8 and Eq. 9.

$\begin{matrix} {A_{2} = {{\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*{\mathbb{e}}^{- {{j\alpha}{({n,k})}}}}} = {{\mathbb{e}}^{{- {{j\pi}{({k + {1\text{/}2}})}}}\text{/}N}*\underset{\underset{G_{i}}{︸}}{\sum\limits_{n = 0}^{n = {N - 1}}{\left( {{x\lbrack n\rbrack}*{\mathbb{e}}^{{- {j\pi n}}\text{/}N}} \right)*{\mathbb{e}}^{{- {j2\pi}}\;{nk}\text{/}N}}}}}} & {{Eq}.\mspace{14mu} 13} \end{matrix}$

Note that G_(κ) ^(*) is actually the complex conjugate of G_(κ)which was obtained earlier by Eq. 12. That is, if G_(κ)=g_(κ,r)+jg_(k,i), where g_(κ,i) ε

as defined earlier then G_(κ) ^(*)=_(κ,r)jg_(κ,i). Therefore, G_(κ) ^(*) in Eq. 12 does not need to computed again and result from Eq. 12 can be reused. That is only one FFT needs to be computed for the evaluation of T₁. Using Eq. 8 to 13 we obtain T ₁=½(e^(iπ(κ+1/2)YN) G _(κ+e) ^(−kπ(κ+1/2)lN) G _(κ) ^(*))  Eq. 14

Next, we analyse the term T₂.

$\begin{matrix} {\quad\begin{matrix} {\quad{T_{2} = {\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*{\left( {{\mathbb{e}}^{j\alpha} - {\mathbb{e}}^{- {j\alpha}}} \right)/2}j}}}} \\ {= {{1/2}{j\left( {A_{1} - A_{2}} \right)}}} \\ {= {{1/2}{j\left( {{{\mathbb{e}}^{{{j\pi}{({k + {1/2}})}}/N}G_{k}} - {{\mathbb{e}}^{{- {{j\pi}{({k + {1/2}})}}}/N}G_{k}^{*}}} \right)}}} \end{matrix}} & {{Eq}.\mspace{14mu} 15} \end{matrix}$

Finally after simplifications of Eq. 7,14 and 15 we obtain

$\begin{matrix} {\quad\begin{matrix} {X_{k} = {{\cos\;{\gamma(k)}\underset{\underset{T_{1}}{︸}}{{1/2}\left( {{{\mathbb{e}}^{{{j\pi}{({k + {1/2}})}}/N}G_{k}} + {{\mathbb{e}}^{{- {{j\pi}{({k + {1/2}})}}}/N}G_{k}^{*}}} \right)}} -}} \\ {\sin\;{\gamma(k)}\underset{\underset{T_{2}}{︸}}{{1/2}{j\left( {{{\mathbb{e}}^{{{j\pi}{({k + {1/2}})}}/N}G_{k}} - {{\mathbb{e}}^{{- {{j\pi}{({k + {1/2}})}}}/N}G_{k}^{*}}} \right)}}} \\ {= {{\cos\;\gamma*\underset{\underset{T_{1}}{︸}}{\left( {{g_{k,r}{\cos\left( {{\pi\left( {k + {1/2}} \right)}/N} \right)}} - {g_{k,i}{\sin\left( {{\pi\left( {k + {1/2}} \right)}/N} \right)}}} \right.}} -}} \\ {\sin\;\gamma*\underset{\underset{T_{2}}{︸}}{\left( {{g_{k,r}{\sin\left( {{\pi\left( {k + {1/2}} \right)}/N} \right)}} + {g_{k,i}{\cos\left( {{\pi\left( {k + {1/2}} \right)}/N} \right)}}} \right.}} \end{matrix}} & {{Eq}.\mspace{14mu} 16} \end{matrix}$

The term G_(κ)=g_(κr)+jg_(κ,l) may be computed in O(NlogN) operation using FT algorithms. The additional operation outlined in Eq. 16 to extract the final X_(κ)is only of order O(N). Therefore the MDCT can now be computed in O(Nlog₂N) time. The operations required to obtain the MDCT is illustrated in FIG. 3.

N-Point MDCT Using N/2-Point FFT

Since the most computationally intensive part is the FFT, we shall focus on it in order to decrease computation even further. The values of

$G_{k} = {\sum\limits_{n = 0}^{N - 1}\;\left\lbrack {\left( {{x\lbrack n\rbrack}{\mathbb{e}}^{j\frac{x\; n}{N}}} \right){\mathbb{e}}^{j\frac{2x\;{nk}}{N}}} \right\rbrack}$ required in Eq. 16 may be obtained through an N/2-Point FFT.

It is well known that an N-Point FFT of a sequence of N real data can be easily obtained by using a N/2-Point FFT only, provided the FFT is preceded by a pre-processing and followed by a post-processing which formats the inputs so that the final result is mathematically identical in both cases.

In our present case, the input to the FFT block is a sequence of N complex data. To evaluate the FFT of N arbitrary complex numbers, an N-Point FFT is definitely required. A M-Point FFT, M<N will not do. In the present cas however, the input sequence is not completely an arbitrary complex sequence but is of the form

${{x\lbrack n\rbrack}{\mathbb{e}}^{j\frac{x\; n}{N}}},$ where x[n] is real.

$G_{k} = {\sum\limits_{n = 0}^{N - 1}\;\left\lbrack {\left( {{x\lbrack n\rbrack}*{\mathbb{e}}^{j\frac{x\; n}{N}}} \right){\mathbb{e}}^{j\frac{2x\;{nk}}{N}}} \right\rbrack}$

Let us define

${{z\lbrack n\rbrack} = {\left( {{x\left\lbrack {2n} \right\rbrack} + {j\;{x\left\lbrack {{2n} + 1} \right\rbrack}}} \right){\mathbb{e}}^{j\frac{2x\; n}{N}}}},$ 0≦n≦(N/2−1). Then, taking a N/2-Point FFT of z[n].

${Z_{k} = {\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {{z\lbrack n\rbrack}{\mathbb{e}}^{j\frac{2x\;{nk}}{N/2}}} \right\rbrack}},{0 \leq k \leq {{N/2} - 1}}$

Therefore,

$Z_{\frac{N}{2} - k - 1} = {\sum\limits_{n = 0}^{{N/2} - 1}\;{\left\lbrack {{z\lbrack n\rbrack}{\mathbb{e}}^{{- j}\frac{2x\;{nk}}{N/2}}{\mathbb{e}}^{{- j}\frac{2x\; n}{N/2}}} \right\rbrack.}}$ Taking the complex conjugate of

$Z_{\frac{N}{2} - k - 1}$ gives us

$Z_{\frac{N}{2} - k - 1}^{*} = {\sum\limits_{n = 0}^{{N/2} - 1}\;{\left\lbrack {{z^{*}\lbrack n\rbrack}{\mathbb{e}}^{j\frac{2\pi\;{nk}}{N/2}}{\mathbb{e}}^{j\frac{2\pi\; n}{N/2}}} \right\rbrack.}}$ Also, note that with some simplifications we obtain

${{z\lbrack n\rbrack} + {{z^{*}\lbrack n\rbrack}{\mathbb{e}}^{j\frac{2x\; n}{N/2}}}} = {{{2{x\left\lbrack {2n} \right\rbrack}{\mathbb{e}}^{j\frac{x{({2n})}}{N}}\mspace{14mu}{and}\mspace{14mu}{z\lbrack n\rbrack}} - {{z^{*}\lbrack n\rbrack}{\mathbb{e}}^{j\frac{2x\; n}{N}}}} = {2{x\left\lbrack {2n} \right\rbrack}{{\mathbb{e}}^{j\frac{x{({2n})}}{N}}.}}}$ We now have all the essential derivations for us to obtain G_(κ)from Z_(κ).

$\begin{matrix} {{\frac{1}{2}\left\lbrack {Z_{k} + Z_{\frac{N}{2} - k - 1}} \right\rbrack} = {\frac{1}{2}\left\lbrack {{\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {{z\lbrack n\rbrack}{\mathbb{e}}^{j\frac{2{xnk}}{N/2}}} \right\rbrack} + {\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {{z^{*}\lbrack n\rbrack}{\mathbb{e}}^{j\frac{2{xnk}}{N/2}}{\mathbb{e}}^{j\frac{2{xn}}{N/2}}} \right\rbrack}} \right\rbrack}} \\ {= {\frac{1}{2}\left\lbrack {\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {\left( {{z\lbrack n\rbrack} + {{z^{*}\lbrack n\rbrack}{\mathbb{e}}^{j\frac{2x\; n}{N/2}}}} \right){\mathbb{e}}^{j\frac{2x\;{nk}}{N/2}}} \right\rbrack} \right\rbrack}} \\ {= {\frac{1}{2}{\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {\left( {2{x\left\lbrack {2n} \right\rbrack}{\mathbb{e}}^{j\frac{x{({2n})}}{N}}} \right){\mathbb{e}}^{j\frac{2{x{({2x})}}k}{N}}} \right\rbrack}}} \\ {= {\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {\left( {{x\left\lbrack {2n} \right\rbrack}{\mathbb{e}}^{j\frac{x{({2n})}}{N}}} \right){\mathbb{e}}^{j\frac{2{x{({2n})}}k}{N}}} \right\rbrack}} \\ {{\frac{{\mathbb{e}}^{j\frac{x{({{2k} + 1})}}{N}}}{2j}\left\lbrack {Z_{k} - Z_{\frac{N}{2} - k - 1}^{*}} \right\rbrack} = {\frac{{\mathbb{e}}^{j\frac{x{({{2k} + 1})}}{N}}}{2j}\left\lbrack {{\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {{z\lbrack n\rbrack}{\mathbb{e}}^{j\frac{2x\;{nk}}{N/2}}} \right\rbrack} -} \right.}} \\ \left. {\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {{z^{*}\lbrack n\rbrack}{\mathbb{e}}^{j\frac{2x\;{nk}}{N/2}}{\mathbb{e}}^{j\frac{2x\; n}{N/2}}} \right\rbrack} \right\rbrack \\ {= {\frac{{\mathbb{e}}^{j\frac{x{({{2k} + 1})}}{N}}}{2j}\left\lbrack {\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {\left( {{z\lbrack n\rbrack} - {{z^{*}\lbrack n\rbrack}{\mathbb{e}}^{j\frac{2x\; n}{N/2}}}} \right){\mathbb{e}}^{j\frac{2x\;{nk}}{N/2}}} \right\rbrack} \right\rbrack}} \\ {= {\frac{{\mathbb{e}}^{j\frac{x{({{2k} + 1})}}{N}}}{2j}\left\lbrack {\sum\limits_{n = 0}^{{N/2} - 1}\;{\left( {2j\;{x\left\lbrack {{2n} + 1} \right\rbrack}{\mathbb{e}}^{j\frac{x{({2n})}}{N}}} \right){\mathbb{e}}^{j\frac{2x\;{({2n})}k}{N}}}} \right\rbrack}} \\ {= {\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {\left( {{x\left\lbrack {{2n} + 1} \right\rbrack}{\mathbb{e}}^{j\frac{x{({{2n} + 1})}}{N}}} \right){\mathbb{e}}^{j\frac{2{x{({{2n} + 1})}}k}{N}}} \right\rbrack}} \end{matrix}$

Now it is straight forward to get G_(κ)from Z_(κ).

${{\frac{1}{2}\left\lbrack {Z_{k} + Z_{\frac{N}{2} - k - 1}^{*}} \right\rbrack} + {\frac{{\mathbb{e}}^{j\frac{x{({{2k} + 1})}}{N}}}{2j}\left\lbrack {Z_{k} - Z_{\frac{N}{2} - k - 1}^{*}} \right\rbrack}} = {{{\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {\left( {{x\left\lbrack {2n} \right\rbrack}{\mathbb{e}}^{j\frac{x{({2n})}}{N}}} \right){\mathbb{e}}^{j\frac{2{x{({2n})}}k}{N}}} \right\rbrack} + {\sum\limits_{n = 0}^{{N/2} - 1}\;\left\lbrack {\left( {{x\left\lbrack {{2n} + 1} \right\rbrack}{\mathbb{e}}^{j\frac{x{({{2n} + 1})}}{N}}} \right){\mathbb{e}}^{j\frac{2{x{({{2n} + 1})}}k}{N}}} \right\rbrack}} = {\sum\limits_{n = 0}^{N - 1}\;\left\lbrack {\left( {{x\lbrack n\rbrack}*{\mathbb{e}}^{j\frac{x\; n}{N}}} \right){\mathbb{e}}^{j\frac{2x\;{nk}}{N}}} \right\rbrack}}$

Accordingly, use of an N/2-Point FFT allows Gκ to be derived, which inturn allows the MDCT of the complex input signal to be evaluated, with reduced computational requirements. 

1. A method of evaluating a modified discrete cosine transform (MDCT) of an input sequence of complex signal data in an audio signal processor, comprising: using a Fast Fourier Transform (FFT), wherein the FFT is a N/2-Point FFT, to evaluate, the complex data, from audio signals and wherein the MDCT is $X_{k} = {\sum\limits_{n = 0}^{n = {N - 1}}\;{{x\lbrack n\rbrack}*{\cos\left( {{2\pi*\left( {{2n} + 1} \right)*{\left( {{2k} + 1} \right)/4}N} + {\pi*{\left( {{2k} + 1} \right)/4}}} \right)}}}$ k = 0  …  (N/2 − 1) where x[n] represents the input sequence and N is the number of data samples in the sequence.
 2. The method of claim 1, wherein a transform coefficient sequence of the MDCT is derived using the N/2-Point FFT of a complex function z[n], where ${{z\lbrack n\rbrack} = {\left( {{x\left\lbrack {2n} \right\rbrack} + {j\;{x\left\lbrack {{2n} + 1} \right\rbrack}}} \right){\mathbb{e}}^{j\frac{2{xn}}{N}}}},{0 \leq n \leq {\left( {{N/2} - 1} \right).}}$
 3. The method of claim 2, wherein a transform Zk and the complex conjugate of the transform Z_(N/2-k-1) are derived from z[n] for the expression $G_{k} = {{\frac{1}{2}\left\lbrack {Z_{k} + Z_{\frac{N}{2} - k - 1}} \right\rbrack} + {\frac{{\mathbb{e}}^{\frac{x{({{2k} + 1})}}{N}}}{2j}\left\lbrack {Z_{k} - Z_{\frac{N}{2} - k - 1}} \right\rbrack}}$ where Gk is a transform coefficient sequence which allows the MDCT to be evaluated, in that $G_{k} = {{g_{k,r} + {jg}_{k,i}} = {\sum\limits_{n = 0}^{n = {N - 1}}{\left( {{x\lbrack n\rbrack}{\mathbb{e}}^{j\;{{xn}/N}}} \right)*{\mathbb{e}}^{j\; 2{{xnk}/N}}}}}$ which can be used to solve the MDCT when rewritten as $\quad{X_{k} = {{{\cos\;{\gamma(k)}\underset{\underset{T_{1}}{︸}}{{1/2}\left( {{{\mathbb{e}}^{j\;{{\pi{({k + {1/2}})}}/N}}G_{k}} + {{\mathbb{e}}^{{- j}\;{{\pi{({k + {1/2}})}}/N}}G_{k}^{*}}} \right)}} - {\sin\;{\gamma(k)}\underset{︸}{{1/2}{j\left( {{{\mathbb{e}}^{j\;{{\pi{({k + {1/2}})}}/N}}G_{k}} - {{\mathbb{e}}^{{- j}\;{{\pi{({k + {1/2}})}}/N}}G_{k}^{*}}} \right)}}}} = {{\cos\;\gamma*\underset{\underset{T_{1}}{︸}}{\left( {{g_{k,r}{\cos\left( {{\pi\left( {k + {1\text{/}2}} \right)}/N} \right)}} - {g_{k,i}{\sin\left( {{\pi\left( {k + {1\text{/}2}} \right)}/N} \right)}}} \right.}} - {\sin\;\gamma*{\underset{\underset{T_{w}}{︸}}{\left( {{g_{k.r}{\sin\left( {{\pi\left( {k + {1\text{/}2}} \right)}/N} \right)}} + {g_{k,i}{\cos\left( {{\pi\left( {k + {1/2}} \right)}/N} \right)}}} \right.}.}}}}}$
 4. A multi-channel audio coder, comprising: an encoder configured to receive a time domain signal and to convert the time domain signal into a frequency domain signal by evaluating a modified discrete cosine transform (MDCT) using a Fast Fourier Transform (FFT) that is a N/2-Point FFT where N is the number of data samples and the MDCT is of the form $X_{k} = {{\sum\limits_{n = 0}^{n = {N - 1}}{{x\lbrack n\rbrack}*{\cos\left( {{2\;\pi*\left( {{2n} + 1} \right)*{\left( {{2k} + 1} \right)/4}N} + {\pi*{\left( {{2k} + 1} \right)/4}}} \right)}\mspace{20mu} k}} = {0\ldots\mspace{14mu}\left( {{N/2} -} \right)}}$ where x[n] represents an input sequence and N is the number of data samples of the sequence.
 5. The method of claim 4, wherein a transform coefficient sequence of the MDCT is derived using the N/2-Point FFT of a complex function z[n], where ${{z\lbrack n\rbrack} = {\left( {{x\left\lbrack {2n} \right\rbrack} + {{jx}\left\lbrack {{2n} + 1} \right\rbrack}} \right){\mathbb{e}}^{j\frac{2{xn}}{N}}}},{0 \leq n \leq {\left( {{N/2} - 1} \right).}}$
 6. A multi-channel audio coder, comprising: an encoder configured to receive a time domain signal and to convert the time domain signal into a frequency domain signal by evaluating a modified discrete cosine transform (MDCT) using a Fast Fourier Transform (FFT) that is a N/2-Point FFT where N is the number of data samples and the MDCT is of the form $X_{k} = {{\sum\limits_{n = 0}^{n = {N - 1}}{{x\lbrack n\rbrack}*{\cos\left( {{2\;\pi*\left( {{2n} + 1} \right)*{\left( {{2k} + 1} \right)/4}N} + {\pi*{\left( {{2k} + 1} \right)/4}}} \right)}\mspace{14mu} k}} = {0\ldots\mspace{14mu}\left( {{N/2} - 1} \right)}}$ where x[n] represents an input sequence and N is the number of data samples of the sequence, and wherein a transform coefficient sequence of the MDCT is derived using the N/2-Point FFT of a complex function z[n], where ${z\lbrack n\rbrack} = \left( {{{x\left\lbrack {2n} \right\rbrack} + {j\;{x\left\lbrack {{2n} + 1} \right\rbrack}{\mathbb{e}}^{j\frac{2{xn}}{N}}}},\mspace{14mu}{0 \leq n \leq \left( {{N/2} - 1} \right)}} \right.$ and wherein a transform Zk and the complex conjugate of the transform Z_(N/2-k-1) are derived from z[n] for the expression $G_{k} = {{\frac{1}{2}\left\lbrack {Z_{k} + Z_{\frac{N}{2} - k - 1}} \right\rbrack} + {\frac{{\mathbb{e}}\frac{x\left( {{2k} + 1} \right)}{N}}{2\; j}\left\lbrack {Z_{k} - Z_{\frac{N}{2} - k - 1}} \right\rbrack}}$ where Gk is a transform coefficient sequence which allows the MDCT to be evaluated, in the $G_{k} = {{g_{k,r} + {j\; g_{k,i}}} = {\sum\limits_{n = 0}^{n = {N - 1}}{\left( {{x\lbrack n\rbrack}{\mathbb{e}}^{j\;{{xn}/N}}} \right)*{\mathbb{e}}^{j\; 2{{xnk}/N}}}}}$ which can be used to solve the MDCT when rewritten as $\quad{X_{k} = {{{\cos\;{\gamma(k)}\underset{\underset{T_{1}}{︸}}{{1/2}\left( {{{\mathbb{e}}^{j\;{{\pi{({k + {1/2}})}}/N}}G_{k}} + {{\mathbb{e}}^{{- j}\;{{\pi{({k + {1/2}})}}/N}}G_{k}^{*}}} \right)}} - {\sin\;{\gamma(k)}\underset{︸}{{1/2}{j\left( {{{\mathbb{e}}^{j\;{{\pi{({k + {1/2}})}}/N}}G_{k}} - {{\mathbb{e}}^{{- j}\;{{\pi{({k + {1/2}})}}/N}}G_{k}^{*}}} \right)}}}} = {{\cos\;\gamma*\underset{\underset{T_{1}}{︸}}{\left( {{g_{k,r}{\cos\left( {{\pi\left( {k + {1\text{/}2}} \right)}/N} \right)}} - {g_{k,i}{\sin\left( {{\pi\left( {k + {1\text{/}2}} \right)}/N} \right)}}} \right.}} - {\sin\;\gamma*{\underset{\underset{T_{w}}{︸}}{\left( {{g_{k.r}{\sin\left( {{\pi\left( {k + {1\text{/}2}} \right)}/N} \right)}} + {g_{k,i}{\cos\left( {{\pi\left( {k + {1/2}} \right)}/N} \right)}}} \right.}.}}}}}$
 7. A method of coding a multi-channel time domain audio signal, comprising: receiving multiple time domain audio signals at an encoder and converting the time domain audio signals into complex frequency domain data by evaluating a modified discrete cosine transform (MDCT) using a Fast Fourier Transform (FFT) that is a N/2-Point FFT, where N is the number of data samples, wherein the MDCT is of the form: $X_{k} = {{\sum\limits_{n = 0}^{n = {N - 1}}{{x\lbrack n\rbrack}*{\cos\left( {{2\pi*\left( {{2n} + 1} \right)*{\left( {{2k} + 1} \right)/4}N} + {\pi*{\left( {{2k} + 1} \right)/4}}} \right)}\mspace{14mu} k}} = {0\ldots\mspace{14mu}\left( {{N/2} - 1} \right)}}$ where x[n] represents an input sequence and N is the number of data samples of the sequence.
 8. The method of claim 7 wherein a transform coefficient sequence of the MDCT is derived using the N/2-Point FFT of a complex function z[n], where ${{z\lbrack n\rbrack} = {\left( {{x\left\lbrack {2n} \right\rbrack} + {j\;{x\left\lbrack {{2n} + 1} \right\rbrack}}} \right){\mathbb{e}}^{j\frac{2{xn}}{N}}}},\mspace{14mu}{0 \leq n \leq {\left( {{N/2} - 1} \right).}}$
 9. The method of claim 8 wherein a transform Zk and the complex conjugate of the transform Z_(N/2-k-1) are derived from z[n] for the expression $G_{k} = {{\frac{1}{2}\left\lbrack {Z_{k} + Z_{\frac{N}{2} - k - 1}} \right\rbrack} + {\frac{{\mathbb{e}}\frac{x\left( {{2k} + 1} \right)}{N}}{2\; j}\left\lbrack {Z_{k} - Z_{\frac{N}{2} - k - 1}} \right\rbrack}}$ where Gk is a transform coefficient sequence which allows the MDCT to be evaluated, in that $G_{k} = {{g_{k,r} + {j\; g_{k,i}}} = {\sum\limits_{n = 0}^{n = {N - 1}}{\left( {{x\lbrack n\rbrack}{\mathbb{e}}^{j\;{{xn}/N}}} \right)*{\mathbb{e}}^{j\; 2{{xnk}/N}}}}}$ which can be used to solve the MDCT when rewritten as $X_{k} = {{{\cos\;{\gamma(k)}\underset{\underset{T_{1}}{︸}}{{1/2}\left( {{{\mathbb{e}}^{j\;{{\pi{({k + {1/2}})}}/N}}G_{k}} + {{\mathbb{e}}^{{- j}\;{{\pi{({k + {1/2}})}}/N}}G_{k}^{*}}} \right)}} - {\sin\;{\gamma(k)}\underset{︸}{{1/2}{j\left( {{{\mathbb{e}}^{j\;{{\pi{({k + {1/2}})}}/N}}G_{k}} - {{\mathbb{e}}^{{- j}\;{{\pi{({k + {1/2}})}}/N}}G_{k}^{*}}} \right)}}}} = {{\cos\;\gamma*\underset{\underset{T_{1}}{︸}}{\left( {{g_{k,r}{\cos\left( {{\pi\left( {k + {1\text{/}2}} \right)}/N} \right)}} - {g_{k,i}{\sin\left( {{\pi\left( {k + {1\text{/}2}} \right)}/N} \right)}}} \right.}} - {\sin\;\gamma*{\underset{\underset{T_{w}}{︸}}{\left( {{g_{k.r}{\sin\left( {{\pi\left( {k + {1\text{/}2}} \right)}/N} \right)}} + {g_{k,i}{\cos\left( {{\pi\left( {k + {1/2}} \right)}/N} \right)}}} \right.}.}}}}$ 